package com.he1618.boot3.app;

import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.security.NoSuchAlgorithmException;

public class AESKeyGenerationExample {

    public static void main(String[] args) {
        try {
            // 使用AES算法创建一个KeyGenerator对象
            KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");

            // 设置密钥长度，可选择128、192或256位
            keyGenerator.init(128);

            // 生成密钥
            SecretKey secretKey = keyGenerator.generateKey();

            // 将密钥转换为字节数组（可保存到文件或数据库等）
            byte[] keyBytes = secretKey.getEncoded();

            System.out.println("AES密钥生成成功！");
            System.out.println("密钥长度：" + keyBytes.length * 8 + " 位");
            System.out.println("Base64编码后的密钥：" + java.util.Base64.getEncoder().encodeToString(keyBytes));
            System.out.println("Base64编码后的密钥：" + java.util.Base64.getEncoder().encodeToString(keyBytes).length());

        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
    }
}
